'use strict'

define(['jquery' , 'bootstrap' , 'select2' , 'shiftform' , 'validate' , 'validate.en' , 'datetimepicker' , 'datetimepickerCN' , 'uploader' , 'plupload' , 'qiniu'] , function($) {
  return {
    
    init: function() {
      this.editProduct();
      this.editCover();
      this.editQrcode();
    },
    
    editProduct : function(){
      
      $(document).on("shown.bs.modal", "#edit-product", function(e){
        $(e.currentTarget).find('form[data-validate="true"]').bt_validate();  //bind validate
    
        var $form = $(e.currentTarget).find("form")                          //bind shiftform
        
        $form.bt_validate();
        
        $form.shiftform({
          beforeSubmit : function(el) {
            $form.trigger("validate.ajax.submit");
            return $.bt_validate.result[$.bt_validate.form_id];
          }
        });
      });
      
    },
    
    editCover : function(){
      var that = this;
        
      $(document).on("shown.bs.modal", "#edit-cover", function(e){
    
        that.initUploadCover();
          
        var $form = $(e.currentTarget).find("form");                          //bind shiftform
        
        $form.bt_validate();
        
        $form.shiftform({
          beforeSubmit : function(el) {
            $form.trigger("validate.ajax.submit");
            return $.bt_validate.result[$.bt_validate.form_id];
          }
        });
      });
      
    },
    
    editQrcode : function(){
      var that = this;
    
      $(document).on("shown.bs.modal", "#edit-qrcode", function(e){
    
        that.initUploadBarcode();
          
        var $form = $(e.currentTarget).find("form");                          //bind shiftform
        
        $form.bt_validate();
        
        $form.shiftform({
          beforeSubmit : function(el) {
            $form.trigger("validate.ajax.submit");
            return $.bt_validate.result[$.bt_validate.form_id];
          }
        });
      });
      
    },
    
    initUploadCover : function(){
      
      var imgSrc = $(".upload-cover").find("img").attr("src");
      
      if(imgSrc == null || imgSrc == undefined) {
        $(".upload-cover").find("img").addClass("hide");
      }
      
      
      $(".upload-cover").hover(function(){
        $(".upload-cover .edit-btn").addClass("in");
      },function(){
        $(".upload-cover .edit-btn").removeClass("in");
      });
      
      $.ajax({
        
        url: window.__CTX__.cloudUptoken,
        // The name of the callback parameter, as specified by the YQL service
        jsonp: "callback",
        // Tell jQuery we're expecting JSONP
        dataType: "jsonp",
        // Work with the response
        success: function( response ) {
          var uploaderCover = Qiniu.uploader({
            runtimes: 'html5,flash,html4',
            browse_button: 'pickCover',
            uptoken: response.token,
            domain: 'http://upload.qiniu.com/',
            max_file_size: '4mb',
            max_retries: 3,
            chunk_size: '2mb',
            save_key: true,
            auto_start: true,
            init: {
              'UploadProgress': function(up, file) {
                $('#messageCover').removeClass("hide");
                $(".edit-btn").addClass("hide").prop("disabled", true);
                $('#messageCover').html("正在上传图片，请稍后");
                $('#submitBtn').attr("disabled", "disabled");
              },
              'FileUploaded': function(up, file, info) {
                var res = $.parseJSON(info);
                var cover_box = '';
                $('#coverPreview').attr("src", window.__CTX__.cloudProd + "/" + res.key + "-0.6");
                $('#coverPreviewList').css("display", "block");
                $('#cover').val(res.key);
                $('#messageCover').html("加载图片完成");
                setTimeout(function() {
                  $('#messageCover').addClass("hide");
                  $(".edit-btn").addClass("fade").removeClass("hide").prop("disabled", false).html("<span class='glyphicon glyphicon-repeat' aria-hidden='true'></span>&nbsp;&nbsp;重新上传");
                }, 2000);
                $('#submitBtn').removeAttr('disabled');
              },
              'Error': function(up, err, errTip) {
                $('#messageCover').html("图片上传异常，请稍后重试");
              }
            }
          });
        }
      });
      
    },
    
    initUploadBarcode : function(){
      
        var imgSrc = $(".upload-barcode").find("img").attr("src");
          if(imgSrc == null || imgSrc == undefined) {
            $(".upload-barcode").find("img").addClass("hide");
          }
          
          
          $(".upload-barcode").hover(function(){
            $(".upload-barcode .edit-btn").addClass("in");
          },function(){
            $(".upload-barcode .edit-btn").removeClass("in");
          });
          
          $.ajax({
            
            url: window.__CTX__.cloudUptoken,
            // The name of the callback parameter, as specified by the YQL service
            jsonp: "callback",
            // Tell jQuery we're expecting JSONP
            dataType: "jsonp",
            // Work with the response
            success: function( response ) {
              var uploaderCover = Qiniu.uploader({
                runtimes: 'html5,flash,html4',
                browse_button: 'pickBarcode',
                uptoken: response.token,
                domain: 'http://upload.qiniu.com/',
                max_file_size: '4mb',
                max_retries: 3,
                chunk_size: '2mb',
                save_key: true,
                auto_start: true,
                init: {
                  'UploadProgress': function(up, file) {
                    $('#messageBarcode').removeClass("hide");
                    $(".edit-btn").addClass("hide").prop("disabled", true);
                    $('#messageBarcode').html("正在上传图片，请稍后");
                    $('#submitBtn').attr("disabled", "disabled");
                  },
                  'FileUploaded': function(up, file, info) {
                    var res = $.parseJSON(info);
                    var barcode_box = '';
                    $('#barcodePreview').attr("src", window.__CTX__.qiniuProd + "/" + res.key + "-0.6");
                    $('#barcodePreviewList').css("display", "block");
                    $('#barcode').val(res.key);
                    $('#messageBarcode').html("加载图片完成");
                    setTimeout(function() {
                      $('#messageBarcode').addClass("hide");
                      $(".edit-btn").addClass("fade").removeClass("hide").prop("disabled", false).html("<span class='glyphicon glyphicon-repeat' aria-hidden='true'></span>&nbsp;&nbsp;重新上传");
                    }, 2000);
                    $('#submitBtn').removeAttr('disabled');
                  },
                  'Error': function(up, err, errTip) {
                    $('#messageBarcode').html("图片上传异常，请稍后重试");
                  }
                }
              });
            }
          });
        }
  }
})